package com.itheima.d3_exception.Case;

import java.util.Scanner;

/**
 * @ClassName Case3
 * @Author 16799
 * @Date 2025/7/23 10:31
 * @Version 1.0
 * @Description TODO
 *
 * 这个写了半小时不容易，反复看视频和相似案例，自己对异常处理不熟，对死循环添加break不熟
 **/
public class Case3 {
    public static void main(String[] args) {
        while (true) {
            try {
                getArr();
                System.out.println("输入的是合理的数组索引");
                break;
            } catch (Exception e) {
                System.out.println("报错，不要乱输入索引");
                //e.printStackTrace();      //这个大段红色报错影响观感
            }
        }
    }

    private static void getArr(){
        int array[] = {1,2,3,4,5};
        Scanner sc = new Scanner(System.in);

        while (true){
            System.out.println(" ");
            System.out.println("输入数组索引");
            int index = sc.nextInt();
           /*
           这种方式，假如输入的是负数或者其他，结果不同，不好看
           if (index>0){
                System.out.println("当前"+index+"索引的数组元素值为： "+array[index]);
                break;
            }*/
            //简化一下
            System.out.println("当前"+index+"索引的数组元素值为： "+array[index]);
//在sc.nextInt接收输入的错误数据后会报错，会到catch那里处理，然后进入main方法的死循环，又重新执行getArr方法，那就不会执行到这里
            break;
        }
    }
}
